home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #1 / Ham Radio 2000.iso / ham2000 / tcp_ip / tnos / tnos100s / calldbd.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-11-27  |  2.2 KB  |  112 lines

  1. /* Callbook server */
  2. /* Mods by KO4KS */
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include "global.h"
  6. #include "files.h"
  7. #include "mbuf.h"
  8. #include "socket.h"
  9. #include "session.h"
  10. #include "proc.h"
  11. #include "dirutil.h"
  12. #include "commands.h"
  13. #include "mailbox.h"
  14. #include "config.h"
  15.  
  16. #if defined(CALLBOOK) || defined(CALLSERVER) || defined(SAMCALLB)
  17.  
  18. extern char *Callserver;  /* buckbook.c */
  19.  
  20. static int Scallbook = -1;    /* Prototype socket for service */
  21.  
  22. static void calldbd __ARGS((int s,void *unused,void *p));
  23.  
  24. #ifdef SAMCALLB
  25. int cb_lookup __ARGS((int s,char *call,FILE *fp));
  26. #else
  27. void cb_lookup __ARGS((int s,char *call));  /* in buckbook.c  */
  28. #endif
  29.  
  30. /* Start up callsign database service */
  31. int
  32. cdbstart(argc,argv,p)
  33. int argc;
  34. char *argv[];
  35. void *p;
  36. {
  37.     return (installserver (argc, argv, &Scallbook, "Callbook listener", IPPORT_CALLDB,
  38.         "calldbd", calldbd, 1024, NULL));
  39. }
  40. static void
  41. calldbd(s,unused,p)
  42. int s;
  43. void *unused;
  44. void *p;
  45. {
  46. char user[80];
  47. int err;
  48.  
  49.     sockmode(s,SOCK_ASCII);
  50.     sockowner(s,Curproc);
  51.     recvline(s,user,80);
  52.     rip(user);
  53.     log(s,"Callbook lookup: %s",user);
  54.     if(strlen(user) == 0)
  55.         usprintf(s,"No Callbook information available\n");
  56.     else     {
  57. #ifdef SAMCALLB
  58.         if ((err = cb_lookup(s,user,(FILE *) 0)) != 0)
  59.             usprintf(s,(err == 2) ? "No Callbook information available\n" : "Callbook not active\n");
  60. #else
  61.         cb_lookup(s,user);
  62. #endif
  63.     }
  64.     close_s(s);
  65. /*   log(s,"close Callbook"); */
  66. }
  67.  
  68. int
  69. cdb0(argc,argv,p)
  70. int argc;
  71. char *argv[];
  72. void *p;
  73. {
  74.     return (deleteserver (&Scallbook));
  75. }
  76.  
  77. #endif
  78.  
  79.  
  80. /* This routine has been expanded upon, and is now located in buckbook.c
  81.   - kb7yw Mon  01-27-1992   - except if using the SAM database - ko4ks */
  82.  
  83. #ifdef SAMCALLB
  84. char *Callserver;
  85.  
  86. int
  87. docallserver(argc,argv,p)
  88. int argc;
  89. char *argv[];
  90. void *p;
  91. {
  92.     if(argc < 2)
  93.     {
  94.         if(Callserver != NULLCHAR)
  95.             tprintf("The callserver's host name is: %s\n",Callserver);
  96.         else
  97.         {
  98.             tprintf("Callserver not configured!\n");
  99.             tprintf("Usage: callserver hostname OR callserver ip_address\n");
  100.         }
  101.     }
  102.     else {
  103.         if(Callserver != NULLCHAR)
  104.             free(Callserver);
  105.         Callserver = strdup(argv[1]);
  106.     }
  107.     return 0;
  108. }
  109.  
  110. #endif
  111.  
  112.